From 7c5c4d86aefd6e39d7f23eaf4e107467300b9295 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sun, 11 Apr 2010 20:30:24 +0200 Subject: [PATCH] Add GtkWidgetPath parameter to gtk_style_provider_get_style(). --- gtk/gtkstylecontext.c | 11 ++++++++--- gtk/gtkstyleprovider.c | 5 +++-- gtk/gtkstyleprovider.h | 7 +++++-- gtk/gtkstyleset.c | 3 ++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 9bf51e1369..f8f6c08040 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -136,9 +136,14 @@ rebuild_properties (GtkStyleContext *context) data = list->data; list = list->next; - provider_style = gtk_style_provider_get_style (data->provider); - gtk_style_set_merge (priv->store, provider_style, TRUE); - g_object_unref (provider_style); + provider_style = gtk_style_provider_get_style (data->provider, + priv->widget_path); + + if (provider_style) + { + gtk_style_set_merge (priv->store, provider_style, TRUE); + g_object_unref (provider_style); + } } } diff --git a/gtk/gtkstyleprovider.c b/gtk/gtkstyleprovider.c index 18cca7b817..606f4a130e 100644 --- a/gtk/gtkstyleprovider.c +++ b/gtk/gtkstyleprovider.c @@ -48,7 +48,8 @@ gtk_style_provider_iface_init (gpointer g_iface) } GtkStyleSet * -gtk_style_provider_get_style (GtkStyleProvider *provider) +gtk_style_provider_get_style (GtkStyleProvider *provider, + GtkWidgetPath *path) { GtkStyleProviderIface *iface; @@ -59,7 +60,7 @@ gtk_style_provider_get_style (GtkStyleProvider *provider) if (!iface->get_style) return NULL; - return iface->get_style (provider); + return iface->get_style (provider, path); } #define __GTK_STYLE_PROVIDER_C__ diff --git a/gtk/gtkstyleprovider.h b/gtk/gtkstyleprovider.h index ec5ee99937..6e12bb3c66 100644 --- a/gtk/gtkstyleprovider.h +++ b/gtk/gtkstyleprovider.h @@ -21,6 +21,7 @@ #define __GTK_STYLE_PROVIDER_H__ #include +#include "gtkwidgetpath.h" #include "gtkstyleset.h" #include "gtkenums.h" @@ -45,12 +46,14 @@ struct GtkStyleProviderIface { GTypeInterface g_iface; - GtkStyleSet * (* get_style) (GtkStyleProvider *provider); + GtkStyleSet * (* get_style) (GtkStyleProvider *provider, + GtkWidgetPath *path); }; GType gtk_style_provider_get_type (void) G_GNUC_CONST; -GtkStyleSet *gtk_style_provider_get_style (GtkStyleProvider *provider); +GtkStyleSet *gtk_style_provider_get_style (GtkStyleProvider *provider, + GtkWidgetPath *path); G_END_DECLS diff --git a/gtk/gtkstyleset.c b/gtk/gtkstyleset.c index 19e1a97f65..73e33be6c9 100644 --- a/gtk/gtkstyleset.c +++ b/gtk/gtkstyleset.c @@ -134,7 +134,8 @@ gtk_style_set_finalize (GObject *object) } GtkStyleSet * -gtk_style_set_get_style (GtkStyleProvider *provider) +gtk_style_set_get_style (GtkStyleProvider *provider, + GtkWidgetPath *path) { /* Return style set itself */ return g_object_ref (provider); -- 2.30.2